package com.atguigu.a_principle.p1single.v1;

public class SingleResponsebility {
    public static void main(String[] args) {
        Vehicle vehicle = new Vehicle();
        vehicle.run("cars");
        vehicle.run("airplane");
        vehicle.run("steamer");
    }
}

/**
 * 单一职责介绍
 * 对类来说，一个类应该只负责一个职责
 * 如类 A 负责两个不同职责：职责 1，职责 2。当职责 1 需求变更
 * 而改变 A 时，可能造成职责 2 执行错误，所以需要将类 A 的粒度分解为 A1，A2
 */
/*
 方式 1
 1. 在方式 1 的 run 方法中，违反了单一职责原则
 2. 解决的方案非常的简单，根据交通工具运行方法不同，分解成不同类即可
*/
class Vehicle {
    /**
     * 一个方法执行多个任务，职责不清晰
     *
     * @param name
     */
    public void run(String name) {

        System.out.println(name + " runs on the road");
    }
}
